The equals
and hashCode
methods of java.net.URL
may trigger a name service lookup (typically DNS) to resolve
the hostname or IP address. Depending on the configuration, and network status, this lookup can be time-consuming.
On the other hand, the URI
class does not perform such lookups and is a better choice unless you specifically require the
functionality provided by URL
.
In general, it is better to use the URI
class until access to the resource is actually needed, at which point you can convert the
URI
to a URL
using URI.toURL()
.
This rule checks for uses of URL
's in Map
and Set
, and for explicit calls to the equals
and
hashCode
methods. It suggests reconsidering the use of URL
in such scenarios to avoid potential performance issues related
to name service lookups.